package com.wyw.learning.thread.future;


/**
 * 在run方法中无法排除checked Exception（不是所有的异常）
 *  Java中分为Error与Exception
 *  Exception分为可检查异常和不可检查的
 *
 * @author Mr Wu    yewen.wu.china@gmail.com
 * <p>
 * Update History:
 * Author        Time            Content
 */
public class RunnableCantotThrowsException {

    public static void main(String[] args) {
        /*
            下面两种情况可以看出来，只能使用try catch，并不能把异常抛出来
                为什么要这么设计呢？
                    原因：Run方法没有返回值，没有抛出异常
                    设计的原因：即使可以处理异常，最后处理异常也不是自己定义的方法去处理，唯一可以处理的办法也就是在run方法了，如果想对这个异常采取补救措施，于是引出了Callable接口
                Callable接口：
                    类似于Runnable，被其他线程执行的任务
                    实现call方法
                    有返回值

         */
//        Runnable runnable = () -> {
//            try {
//                throw new Exception();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        };
        Runnable runnable1 = new Runnable() {
            @Override
            public void run() {
                try {
                    throw new Exception();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
//        new Callable<>()
    }
}
